home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
lan
/
ssl15.zip
/
SSL.TXT
< prev
Wrap
Text File
|
1996-02-03
|
101KB
|
6,035 lines
SSL (System Scripting Language)
Version 1.5
SSL Copyright 1995 Anthony Mathews
All rights reserved
DEFINITION OF SHAREWARE
Shareware distribution gives users a chance to try software before buying
it. If you try a Shareware program and continue using it, you are expected
to register. Individual programs differ on details -- some request
registration while others require it, some specify a maximum trial period.
With registration, you get anything from the simple right to continue using
the software to an updated program with printed manual.
Copyright laws apply to both Shareware and commercial software, and the
copyright holder retains all rights, with a few specific exceptions as
stated below. Shareware authors are accomplished programmers, just like
commercial authors, and the programs are of comparable quality. (In both
cases, there are good programs and bad ones!) The main difference is in the
method of distribution. The author specifically grants the right to copy
and distribute the software, either to all and sundry or to a specific
group. For example, some authors require written permission before a
commercial disk vendor may copy their Shareware.
Shareware is a distribution method, not a type of software. You should find
software that suits your needs and pocketbook, whether it's commercial or
Shareware. The Shareware system makes fitting your needs easier, because
you can try before you buy. And because the overhead is low, prices are low
also. Shareware has the ultimate money-back guarantee -- if you don't use
the product, you don't pay for it.
DISCLAIMER - AGREEMENT
Users of SSL must accept this disclaimer of warranty: "SSL is supplied as
is. The author disclaims all warranties, expressed or implied, including,
without limitation, the warranties of merchantability and of fitness for
any purpose. The author assumes no liability for damages, direct or
consequential, which may result from the use of SSL."
SSL is a "shareware program" and is provided at no charge to the user for
evaluation. Feel free to share it with your friends, but please do not
give it away altered or as part of another system. The essence of "user-
supported" software is to provide personal computer users with quality
software without high prices, and yet to provide incentive for programmers
to continue to develop new products. If you find this program useful and
find that you are using SSL and continue to use SSL after a 30 day
trial period, you must make a registration payment to A.R.M. SOFTWARE.
Prices can be found in the registration section of this manual.
Anyone distributing SSL for any kind of remuneration must first contact
A.R.M. SOFTWARE at the address below for authorization. This authorization
will be automatically granted to distributors recognized by the (ASP) as
adhering to its guidelines for shareware distributors, and such
distributors may begin offering SSL immediately (However A.R.M. SOFTWARE
must still be advised so that the distributor can be kept up-to-date with
the latest version of SSL.).
You are encouraged to pass a copy of SSL along to your friends for
evaluation. Please encourage them to register their copy if they find that
they can use it. All registered users will receive a copy of the latest
version of the SSL system.
**** ASP OMBUDSMANOMBUDSMAN POLICY ****
This program is produced by a member of the Association of Shareware
Professionals (ASP). ASPASP wants to make sure that the shareware
principle works for you. If you are unable to resolve a shareware-related
problem with an ASP member by contacting the member directly, ASP may be
able to help. The ASP Ombudsman can help you resolve a dispute or problem
with an ASP member, but does not provide technical support for members'
products. Please write to the ASP Ombudsman at 545 Grover Road, Muskegon,
MI USA 49442-9427, Fax 616-788-2765, or send a CompuServe message via
CompuServe Mail to ASP Ombudsman 70007,3536.
REGISTRATION
Fill out the form on the next page or the form in the register.txt file and
mail it to:
A.R.M. Software
5656 Timberlane Rd.
Lake Wales, FL 33853
Registration Fee:
$49.95 plus $5.00 shipping and handling
* Prices Subject to change without notification!
What do you get when you register:
1) A nicely bound manual.
2) Latest version of SSL.
3) Upgrade notifications.
4) 90 days free technical support.
5) Royalty free distribution privileges to any machine owned or
leased by the license holder.
Support Policy:
1) Support can be by mail or by phone. If support is desired by phone,
calls must be made in the evenings Monday thru Thursday. If
someone is not there to take your call, you will be told when the next
time someone will be available to take your call. The phone number for
support will be sent to you when you register your software.
2) Please elect one or two people in your organization to coordinate
support with A.R.M. Software.
3) Contracts can be negotiated for additional technical support after the
initial 90 days.
4) Consultation is also available to help your business come up with
better, more effective and cheaper ways to support your users.
A.R.M. Software
5656 Timberland Rd.
Lake Wales, FL 33853
Your Name: ____________________________________________________
Company Name: ____________________________________________________
Mailing Address: ____________________________________________________
P.O. Box: ____________________________________________________
City: _______________
State, Cntry, Zip: _______________ ______________ ________________
Phone: _______________________________
Registration Fee:
$49.95 plus $5.00 shipping and handling
* Prices Subject to change without notification!
What do you get when you register:
1) A nicely bound manual.
2) Latest version of SSL.
3) Upgrade notifications.
4) 90 days free technical support.
5) Royalty free distribution privileges to any machine owned or
leased by the license holder.
Amount of Money enclosed: ___________________
___ Cash
___ Personal Check
___ Business Check
___ Cashiers Check
___ PO#
* Make checks payable to Anthony Mathews
* A.R.M. Software is not responsible for any type of payment which is lost
in the mail.
FILES INCLUDED ON DISK
INSTALL.BAT - Runs the INSTALL.SSL script.
INSTALL.SSL - Copies SSL to your system.
README.1ST - Last minute information.
SSL.EXE - Application.
SSL.TXT - Documentation in a plain ASCII text format.
REGISTER.TXT - Registration form.
\SAMPLES\ File name: Sample use of:
CMDWHILE.BAT - SSL *C command line option.
COLORS.SSL - MASTERBACK MASTERFORE
MENUITEMBACK MENUITEMFORE
WINBACK WINFORE
FILEFUNC.SSL - INSERTTEXT NUMLINES
PULLTEXT READLINE
REMOVESECTION REMOVETEXT
GROUP.SSL - ADDGROUP DELGROUP
INVENT.SSL - INVENTORY
LABELS.SSL - INPUTWINDOW INSERTTEXT
WHILE LOOP
MATH.SSL - ADD SUB
MULT DIV
MOD
MENU.SSL - MENU IF
ELSE END
OUTWIN.SSL - OUTPUTWINDOW
PUSHKEY.SSL - PUSHKEY COMMAND
STRING.SSL - CONCAT CROP
EXTRACTI LCROP
LENGTH LTRIM
RCROP RTRIM
VARIABLE.SSL - EQU GLOBALENV
LISTVARS LOCALENV
RELEASE RELEASEALL
VOLUME.SSL - GETVOLUME PUTVOLUME
WHILE.SSL - WHILE LOOP
INTRODUCTION
A lot has changed in how businesses are run today. To go into a company
and not see several computers is very unlikely. With an increasing base of
computer systems being added to businesses a prominent problem has arose.
How do you support so many computers with as few people as possible? The
answer is to decrease the amount of time needed to support one computer.
How do you do this? In an environment that has many computers which need
the same operations performed on them you need to be able to decrease the
number of keystrokes and checks on each workstation. This is where
SSL(System Scripting Language) comes in.
What is a script?
A script is a lot like a batch file, but much more powerful. With SSL you
can record repetitive tasks that will be performed on multiple
workstations. This allows you to run the script on the workstation and
avoid all the key strokes and checks you would normally have to do manually
on every workstation.
What can SSL do that a batch file can't?
There are many things, but some of the most prominent are:
1. Adding and removing text from files.
2. Searching text files for a specified string.
3. Extracting data from files and manipulating it.
4. Windows ini file operations
5. Prompt users for input
6. Set up menus
7. Check available hard drive space.
8. Check installed RAM.
9. Check current Dos versions.
Most checks can be used in conditional statements to allow you to determine
a course of action.
What are some of the biggest uses for SSL?
1) Installing software. 4) System maintenance.
2) Upgrading software. 5) Inventorying software on workstations.
3) Removing software.
SSL's biggest use is doing everything that has been mentioned via a network
so that someone doesn't even have to visit the user's desk. The easiest
way to initiate a script is when a user logs into the network.
I have worked for two major corporations who were using internally written
scripting languages to automate tasks. The only problem is that the people
writing the languages could not devote the time needed to make their
languages as useful as they could be. So I set out to write a affordable
scripting language that gives all the versatility needed to support large
numbers of computer systems.
HOW CAN SSL SAVE YOU $$MONEY$$
Every one has heard the saying "Time is Money" and it is very true.
SSL's primary way of saving you money is by saving you time.
SSL can save you time 4 different ways:
a. Traveling to the users workstation
b. Scheduling a time to visit the workstation
c. Limited or No interaction with users
d. Performing tasks on the workstation
When it is necessary to perform tasks on multiple workstations, the only
time you will have tied up in it is the time it takes to write the script.
Below is a cost analysis of a install I did on about 250 workstations.
These figures are very conservative and assume that scripts will run
automatically when users login to the network. They also assume that the
users you are installing are at the same site. If users are at different
sites and you are not using automated scripts, the costs incurred for one
install are even higher than in the example due to travel expenses.
Man hours needed to Installation by Hand Installation using Script
Install application .25 0
Schedule install .083 0
Travel to workstation .083 0
Write script 0 8
Technician's hourly rate $12.00 $12.00
Cost $5.00 per workstation $90.00 unlimited
As you can see the cost associated with the use of SSL is fixed at $90 for
this particular scenario, however manual installation costs grow from
$100 for 20 workstation to $1000 for 200 workstations.
CONVENTIONS USED IN THIS MANUAL
1. Required parameters are surrounded by [ ]
2. Optional parameters are surrounded by < >
3. Parameters need not be placed in " " unless there are spaces in them.
4. Any extra parameters given with a command will be ignored.
5. Any filename given as a parameter without a drive and path will be
searched for in the current working directory.
Special characters:
@@ - You must enclose SSL variables in @ signs accept when assigning
them a value.
%% - You must enclose environment variables in percent signs accept
when assigning them a value.
// - Any special character preceded by "/" will not be treated as
special. i.e. /@ or /% or /" or //
"" - Used to enclose a string with spaces or tabs in it.
PROGRAM EXECUTION
SSL [<DRIVE\PATH\>FILENAME]
Where FILENAME is the name of the file which contains the script. No
special extensions are required. The following example shows how to
execute a script named INSTALL.SSL which is found in the C:\UPDATE
directory.
SSL C:\UPDATE\INSTALL.SSL
******************************** IMPORTANT *********************************
SSL also has a very powerful feature that will save you tons of headaches
when creating complex batch files. No more will you need a 100 different
little executables to use in your batch files in order to perform tasks
such as rebooting the computer, inserting text in a file, deleting text
from a file, checking for the existence of certain text in a file, adding a
group to windows, deleting a group from windows, putting keys in the
keyboard buffer and so on.
WHY?
Because any SSL command can be specified on the command line without using
a external script file. Better than that you can specify a series of up to
20 commands on the command line. Here is how:
SSL *C COMMAND PARAMETERS ... *NL COMMAND PARAMETERS ... *NL COMMAND... <NB>
The *C specifies that a external script file will not be used and the
command desired will be put on the command line. Each command is
separated by a *NL. That is all there is to it.
There is one optional switch, "*NB", which keeps SSL from displaying a BANNER
or information about what SSL is doing. This is useful when you do not
desire users to know SSL is running.
The following command can be placed in a batch file and will reboot the
computer when executed:
SSL *C REBOOT
The following command will count from 0 to 10 and print each number to the
screen:
SSL *C EQU X 0 *NL WHILE "<=" @X@ 10 *NL DISPLAY @X@ *NL ADD @X@ 1 X *NL LOOP
Any parameter containing a character that is recognized by DOS as special,
such as "<", must have the entire parameter surrounded by double quotes so
that the special character is not recognized as special.
For an explanation of the commands in the previous examples refer to the
particular command found latter in this manual.
* Note: You must have write capabilities in the directory you run SSL from
in order to use the *C option.
VARIABLES
Variables are a very powerful part of SSL. Variables allow you to prompt
users for input, manipulate data and use the same data through out your
script without having to hard code the value every time that value is
needed. Variables can be used in any command that requires parameters.
Often you will find it is better to define a variable and use it as a
parameter than to hard code the value in the command, especially if the
value of the parameter is a long string of characters. Commands are
restricted to one line and a maximum of 255 characters. If you use
variables you save a lot of the command line space. Many commands such as
MENU and INPUTWINDOW can make use of this a great deal.
It is always best to initialize a variable before using it. If you do not
and a command that uses the variable fails to assign a value to the
variable for what ever reason, the variable will not have a value for any
other commands that use it latter in the script, causing multiple errors.
Any uninitialized variable that is used in a conditional statement will
return a false value.
All variables are strings of characters, however, for a variable to have a
math function performed on it, it must only contain numeric digits.
TYPES:
There are two types of variables:
SSL variables - SSL variables are defined by SSL while
executing a script and can only be used
while executing the script.
SSL variables can be used in any function
that requires a value to be passed to it or
passes a value back after execution.
SSL variable names can not exceed 30
characters and SSL variable values can not
exceed 255 characters.
The maximum number of SSL variables allowed
is 30.
It is always good to delete a SSL variable
when you are finished using it with the
RELEASE command so that you don't reach
the limit.
Environment variables - Environment variables can only be assigned
a value by LOCALENV or GLOBALENV.
Environment variables can be used in any
function that requires a value to be passed
to it.
Environment variables can be set up until
you run out of environment space, which is
dependent upon the size of your environment
and the size of your variables.
Variables: (continued)
USE:
To use a SSL variable just enclose the variable name in @ signs.
i.e. @COUNT@
Any time you are trying to assign a SSL variable name a value do not
enclose it in @ signs.
i.e. EQU COUNT "12"
To use a environment variable enclose the variable name in % signs.
i.e. %PATH%
When you are assigning a environment variable a value using LOCALENV or
GLOBALENV, do not enclose it in % signs.
i.e. LOCALENV PATH C:\DOS
Remember, environment variables set up using GLOBALENV can not be used
until execution of the current script is finished.
PREDEFINED
SYSTEM VARIABLES: @DATE@ - Returns the date.
@DOSVER@ - Returns the current DOS version.
@DISKSPACE(X)@ - Returns the available disk space on
Drive (X).
i.e. @DISKSPACEC@
i.e. @DISKSPACED@
This value is not fixed. It is
calculated every time the variable is
encountered.
@STARTUP@ - Returns the directory that SSL was
ran from.
@TIME@ - Returns the time at which this
variable was encountered.
@TOTRAM@ - Returns the total amount of RAM
installed.
COMMAND SUMMARY
# INLINE WAIT
ADD INPUT WHILE
ADDGROUP INPUTWINDOW WINBACK
ATTRIBUTE INSERTTEXT WINFORE
BEEP INVENTORY
BREAK LABEL
CD LCROP
CLS LENGTH
COMMAND LISTVARS
CONCAT LOCALENV
COPY LOOP
CROP LTRIM
DEL MASTERBACK
DELGROUP MASTERFORE
DISPLAY MD
DIV MENU
ELSE MENUITEMBACK
END MENUITEMFORE
EQU MOD
ERRORLEVEL MOVE
EXIT MSGLEVEL
EXTRACTI MULT
FILEDATE NUMLINES
FILETIME OUTPUTWINDOW
FILESIZE PAUSE
GETVOLUME PULLTEXT
GLOBALENV PUSHKEY
GOTO PUTVOLUME
IF = RCROP
> RD
< READLINE
>= REBOOT
<= REFRESH
<> RELEASE
DEFINED RELEASEALL
!DEFINED REMOVETEXT
EXIST REMOVESECTION
!EXIST REN
EXIST* RENDIR
!EXIST* RTRIM
TEXTEXIST SSL
!TEXTEXIST SUB
ISNUM
!ISNUM
COMMAND SYNTAX
#
PURPOSE: Used to add commentscomments to a script or temporarily
disable a line in the script. Any line with # at the
beginning of it will not be executed.
SYNTAX: # <REMAINDER OF LINE>
SAMPLE CALL: # EQU FIVE 5
COMMENTS: In the sample call the EQU statement would not be executed.
ASSOCIATED COMMANDS:
ADD
PURPOSE: Adds two numbers together and stores the value in the given
variable.
SYNTAX: ADD [NUMBER1] [NUMBER2] [VARIABLE NAME]
SAMPLE CALL: EQU COUNT 10
ADD 50 @COUNT@ ANSWER
COMMENTS: Numbers and/or variables can be used. In the previous sample
call the value of ANSWER will be 60.
ASSOCIATED COMMANDS: DIV, MOD, MULT, SUB
ADDGROUP
PURPOSE: Add a new group file entry to the progman.ini file.
SYNTAX: ADDGROUP [<DRIVE\PATH\>INI FILE NAME] [GROUP ENTRY]
SAMPLE CALL: ADDGROUP C:\WINDOWS\PROGMAN.INI C:\WINDOWS\NEW.GRP
COMMENTS:
ASSOCIATED COMMANDS: DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT, READLINE,
REMOVESECTION, REMOVETEXT
ATTRIBUTE
PURPOSE: Change file attributes.
SYNTAX: ATTRIBUTE [<DRIVE\PATH\>FILE NAME] [ATTRIBUTE] <*SWITCH>
ATTRIBUTES: +R - Sets the read only attribute.
-R - Removes the read only attribute.
+H - Sets the hidden file attribute.
-H - Removes the hidden file attribute.
+S - Sets the system file attribute.
-S - Removes the system file attribute.
+A - Sets the archive attribute.
-A - Removes the archive attribute.
SWITCHES: *S - Modifies attributes on files in all sub
directories that match FILE NAME.
SAMPLE CALL: (1) ATTRIBUTE C:\DATA\LETTER.DOC +R
(2) ATTRIBUTE C:\DATA\*.DOC +H *S
COMMENTS: DOS wild card conventions can be used to specify what files to
change.
Sample call #1 will add a read only attribute to the file
LETTER.DOC.
Sample call #2 will add a hidden file attribute to all files
with a DOC extension, it will also change any files in
any sub directories under C:\DATA with a DOC extension.
ASSOCIATED COMMANDS: COPY, DEL, FILEDATE, FILESIZE, FILETIME, GETVOLUME,
INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
BEEP
PURPOSE: Causes PC's speaker to sound.
SYNTAX: BEEP
SAMPLE CALL: BEEP
COMMENTS:
ASSOCIATED COMMANDS:
BREAK
PURPOSE: Disables Ctrl-BreakCtrl-Break and Ctrl-CCtrl-C keys.
SYNTAX: BREAK [OPTION]
AVAILABLE OPTIONS:
(1) ON
(2) OFF
SAMPLE CALL: (1) BREAK ON
(2) BREAK OFF
COMMENTS: Sample call #1 will allow the user to terminate the script by
pressing Ctrl-Break or Ctrl-C.
Sample call #2 will not allow the user to terminate the
script by pressing Ctrl-Break or Ctrl-C.
When SSL finishes processing a script the BREAK state
returns to the condition it was in when the script was
first ran.
ASSOCIATED COMMANDS:
CD
PURPOSE: Change directory and/or drive.
SYNTAX: CD [<DRIVE\PATH\>DIRECTORY]
SAMPLE CALL: (1) CD C:\TEST
(2) CD D:
COMMENTS: Sample call #1 will change from the current working directory
and drive to the directory test on the root of drive C:.
Sample call #2 will change to drive D: from the current
drive and remain in the current working directory on
drive D:.
If you want to test for the existence of a drive or
directory use the IF EXIST conditional statement.
ASSOCIATED COMMANDS: RD, MD
CLS
PURPOSE: Clears the PROGRESS window.
SYNTAX: CLS
SAMPLE CALL: CLS
COMMAND
PURPOSE: Execute a external program or DOS command.
SYNTAX: COMMAND ["INSTRUCTION"]
SAMPLE CALL: (1) COMMAND C:\WINDOWS\SETUP
(2) COMMAND "COPY C:\AUTOEXEC.BAT C:\DOS"
(3) COMMAND
COMMENTS: Sample call #1 will execute the Windows setup program. After
exiting setup it will return control to the script.
Sample call #2 will copy the autoexec.bat file to the Dos
directory using the DOS COPY command, then return control
to the script.
Sample call #3 will shell out to DOS. Type EXIT at the DOS
prompt and it will return control to the script.
ASSOCIATED COMMANDS: EXIT
CONCAT
PURPOSE: Takes two strings and concatenates them, then stores the new
value in the given variable.
SYNTAX: CONCAT [STRING1] [STRING2] [VARIABLE NAME]
SAMPLE CALL: EQU STRING1 "He"
EQU STRING2 "llo"
CONCAT @STRING1@ @STRING2@ STRING1
COMMENTS: In the previous sample call the value of STRING2 will be
concatenated to the end of the value of STRING1 and then
stored back in the variable STRING1. In the previous sample
call the value of STRING1 at the end of execution of the
CONCAT statement will be "Hello".
ASSOCIATED COMMANDS: CROP, EXTRACTI, INLINE, LENGTH, LCROP, LTRIM,
RCROP, RTRIM
COPY
PURPOSE: Copies single files, multiple files or entire directory
structures.
SYNTAX: COPY [SOURCE] [DESTINATION] <*SWITCH>
SWITCHES: *S - Copies all sub directories.
SAMPLE CALL: (1) COPY C:\DATA\FILE.EXE C:\NEWDIR\FILE.EXE
(2) COPY C:\DATA C:\BACKUP *S
(3) COPY C:\DATA\WORK\*.DOC C:\BACKUP *S
COMMENTS: Destination parameter must be given. Dos wild card conventions
can be used.
Most other PATH and FILENAME conventions used by DOS's COPY
and XCOPY commands can be used.
ASSOCIATED COMMANDS: ATTRIBUTE, DEL, FILEDATE, FILESIZE, FILETIME,
GETVOLUME, INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
CROP
PURPOSE: Takes the given SUB STRING and attempts to find an
occurrence of it in the SOURCE string. If it does, it
stores all the characters that are after the SUB STRING or
before the SUB STRING, depending on the SWITCH used, in the
given VARIABLE.
SYNTAX: CROP ["SOURCE"] ["SUB STRING"] [VARIABLE] [*SWITCH]
SWITCHES: *P - Extract text before the given sub string.
*A - Extract text after the given sub string.
SAMPLE CALL: EQU STRING "SET PATH = C:\DOS"
CROP @STRING@ "PATH" STRING2 *a
COMMENTS: In the previous sample all the characters in the variable STRING
after PATH will be stored in the variable STRING2. The
value of STRING2 will be " = C:\DOS".
ASSOCIATED COMMANDS: CONCAT, EXTRACTI, INLINE, LCROP, LENGTH, LTRIM,
RCROP, RTRIM
DEL
PURPOSE: Deletes individual files, multiple files, or entire sub
directories.
SYNTAX: DEL [<DRIVE\PATH\>FILENAME] <*SWITCH>
SWITCHES: *S - Deletes files in all sub directories that match
FILENAME and will remove all empty sub
directories after deletion is complete, including
the initial directory if nothing remains in it.
SAMPLE CALL: (1) DEL C:\DATA\INFO.TXT
(2) DEL C:\DATA\*.DOC *S
(3) DEL C:\DATA\*.*
(4) DEL C:\DATA\WORK *S
COMMENTS: Dos wild card conventions can be used.
Sample call #1 will delete the file INFO.TXT in the C:\DATA
directory.
Sample call #2 will delete all files with a DOC extension in
the C:\DATA directory including any files with a DOC
extension in any sub directories.
Sample call #3 will delete all the files in the C:\DATA
directory.
Sample call #4 will remove the entire C:\DATA\WORK directory
and everything underneath it.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, FILEDATE, FILESIZE, FILETIME,
GETVOLUME, INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
DELGROUP
PURPOSE: Remove a group file entry from the progman.ini file.
SYNTAX: DELGROUP [<DRIVE\PATH\>INI FILE NAME] [GROUP ENTRY]
SAMPLE CALL: DELGROUP C:\WINDOWS\PROGMAN.INI C:\WINDOWS\NEW.GRP
COMMENTS:
ASSOCIATED COMMANDS: ADDGROUP, INSERTTEXT, NUMLINES, PULLTEXT, READLINE,
REMOVESECTION, REMOVETEXT
DISPLAY
PURPOSE: Displays a given string of text in the PROGRESS window.
SYNTAX: DISPLAY <"TEXT">
SAMPLE CALLS: (1) DISPLAY "Press any key to continue."
(2) DISPLAY @COUNTER@
(3) DISPLAY "The value of COUNTER is @COUNTER@."
(4) DISPLAY
COMMENTS: TEXT can be a string of characters, a variable or a
combination of both. Double quotes must be placed around the
TEXT if TEXT has spaces in it. If you do not supply a TEXT
string then a blank line will be printed to the PROGRESS
window.
ASSOCIATED COMMANDS: OUTPUTWINDOW
DIV
PURPOSE: Divides two numbers and stores the value in the given
variable.
SYNTAX: DIV [NUMBER1] [NUMBER2] [VARIABLE NAME]
SAMPLE CALL: EQU COUNT 10
DIV 50 @COUNT@ ANSWER
COMMENTS: Numbers and or variables can be used. In the previous sample
call the value of ANSWER will be 5.
ASSOCIATED COMMANDS: ADD, MOD, MULT, SUB
ELSE
PURPOSE: Marks a section of code that should execute if the
associated IF command returns a false value. The section
of code that executes is terminated by the END command.
SYNTAX: ELSE
SAMPLE CALL: IF
.
.
ELSE
.
.
END
COMMENTS: If a condition in an IF statement is true, all the
instructions following the IF command will be executed up to
the associated END or ELSE command.
ASSOCIATED COMMANDS: IF, END
END
PURPOSE: Terminates an IF command if no ELSE command has been used.
SYNTAX: END
SAMPLE CALL: IF
.
.
END
COMMENTS: If a condition in an IF statement is true, all the
instructions following the IF command will be executed up to
the associated END command unless the ELSE command is used.
ASSOCIATED COMMANDS: IF, ELSE
EQU
PURPOSE: Set a variable name equal to some value.
PREDEFINED
SYSTEM VARIABLES: @DATE@ - Returns the date.
@DOSVER@ - Returns the current DOS version.
@DISKSPACE(X)@ - Returns the available disk space on
Drive (X).
@DISKSPACEC@
@DISKSPACED@
@STARTUP@ - Returns the directory that SSL was
ran from.
@TIME@ - Returns the time at which this
variable was encountered.
@TOTRAM@ - Returns the total amount of RAM
installed.
SYNTAX: EQU [VARIABLE NAME] [VALUE]
SAMPLE CALL: (1) EQU COUNTRY USA
(2) EQU BEST @COUNTRY@
(3) EQU @BEST@ #1
(4) EQU @USA@ @USA@
COMMENTS: Sample call #1 the variable COUNTRY will now have the
value USA.
Sample call #2 the variable BEST will have the value USA
because that is what the value of COUNTRY is set to.
Sample call #3 the value of BEST which is USA is set up as a
variable with the value #1.
Sample call #4 the value of USA which is #1 is set up as a
variable with the value of the variable USA which is #1.
COUNTRY = USA
BEST = USA
USA = #1
#1 = #1
Whenever you want to use the value of a variable in a
command, enclose the variable name in @ signs.
The maximum number of variables allowed is 30. It is always
good to delete a variable when you are finished using it
with the RELEASE command so that you don't reach the limit.
It is also good to initialize a variable with some value
before using it so that if a command fails that uses the
variable you can test the value of the variable. If you do
not initialize a variable and a command fails the variable is
not given a value and you can not use it in other commands without
receiving errors. If a variable is not defined it will
produce a false value in conditional statements.
ERRORLEVEL
PURPOSE: Specify what type of error detection you
desire and/or a file to log the errors to.
SYNTAX: ERRORLEVEL [OPTION] <LOG FILENAME>
OPTIONS: 0 - Prints errors to the ERROR window and to the
LOG file.
1 - Prints errors to the ERROR window but does
not save them in the LOG file.
2- Does not print errors to the ERROR window but
does save them in the LOG file.
3 - Does not print errors to the ERROR window nor
does it save them in the LOG file.
4 - Prints the first occurrence of an error to
the ERROR window and to the LOG file,
then exits the script.
SAMPLE CALL: (1) ERRORLEVEL 3
(2) ERRORLEVEL 0 C:\ERROR.LOG
COMMENTS: Sample call #1 will cause SSL to stop printing errors to the
ERROR window and to the LOG file, if one has been opened
previously.
Sample call #2 will cause SSL to print errors to the ERROR
window and open a file called ERROR.LOG in the root of the
C: drive and log all errors to that file.
By default ERRORLEVEL is set to 1 and no log file is opened.
You must specify a LOG FILENAME when setting the ERRORLEVEL
to 0, 2 or 4 for the first time. After initializing a
LOG file you no longer need to specify a LOG
FILENAME when using these ERRORLEVEL's.
A LOG FILENAME should not be specified when setting
ERRORLEVEL to 1 or 3.
If you are running SSL by specifying commands on the command
line, the only option that has an effect is 4. Option 4 will
not log the error to a LOG file but will exit upon the first
occurrence of an error.
ASSOCIATED COMMANDS: MSGLEVEL, PAUSE
EXIT
PURPOSE: Terminates the processing of the current script and runs
any external command given on the command line or terminates
the processing of the current script and sets the DOS
errorlevel upon exiting the script.
SYNTAX: EXIT <SWITCH> <COMMAND or ERRORLEVEL> <ARG1> <ARG2> .. <ARG10>
SWITCHES: *C - Allows you to run an external command upon exiting
the script.
*E - Allows you to set the DOS errorlevel to a desired
value upon exiting the script.
SAMPLE CALL: (1) EXIT
(2) EXIT *C EDIT C:\AUTOEXEC.BAT
(3) EXIT *E 2
COMMENTS: Sample call #1 will just terminate the processing of the
script and exit to DOS.
Sample call #2 will terminate the processing of the script,
exit and load the C:\AUTOEXEC.BAT file into the DOS edit
program.
Sample call #3 will terminate the processing of the script and
set the DOS errorlevel to 2.
The maximum number of arguments that can be given with a
COMMAND using the *C SWITCH is 10.
If you do not give any arguments with the EXIT command, the
DOS errorlevel will be set to 0 when the script terminates.
The DOS errorlevel is also set to 0 when a script finishes
being processed and terminates on it's own. If an error
occurs while processing a script which in turn causes a script
to terminate, the DOS errorlevel will be set to 1.
ASSOCIATED COMMANDS: COMMAND
EXTRACTI
PURPOSE: Extracts a sub string from the given string using a given
starting point and ending point. The sub string extracted
is then stored in the given variable.
SYNTAX: EXTRACTI [STRING] [FROM] [TO] [VARIABLE NAME]
SAMPLE CALL: EXTRACTI "Fourscore and seven years ago" 11 13 SUB
COMMENTS: In the previous sample call EXTRACTI will pull the 11th, 12th
and 13th character out and store the value in the variable
SUB. In the previous sample call the value stored in SUB will be
"and".
ASSOCIATED COMMANDS: CONCAT, CROP, INLINE, LCROP, LENGTH, LTRIM, RCROP,
RTRIM
FILEDATE
PURPOSE: Determines the given file's date of creation
and stores the value in the given variable.
SYNTAX: FILEDATE [<DRIVE\PATH\>FILE NAME] [VARIABLE NAME]
SAMPLE CALL: FILEDATE C:\COMMAND.COM FDATE
COMMENTS: Dates are given in the following format: Month-Day-Year
09-10-95
If the Month, Day or Year is a single digit
it will be preceded by a zero.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILESIZE, FILETIME, GETVOLUME,
INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
FILESIZE
PURPOSE: Determines the given file's size in bytes and
stores the value in the given variable.
SYNTAX: FILESIZE [<DRIVE\PATH\>FILE NAME] [VARIABLE NAME]
SAMPLE CALL: FILESIZE C:\COMMAND.COM SIZE
COMMENTS:
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILETIME, GETVOLUME,
INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
FILETIME
PURPOSE: Determines the given file's time of creation
and stores the value in the given variable.
SYNTAX: FILETIME [<DRIVE\PATH\>FILE NAME] [VARIABLE NAME]
SAMPLE CALL: FILETIME C:\COMMAND.COM FTIME
COMMENTS: Time is given in the following format: Hour:Minutes
19:52
If the Hour or Minute is a single digit it
will be preceded by a zero.
All time is given in military time to make
comparisons easier.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, GETVOLUME,
INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
GETVOLUME
PURPOSE: Reads the volume label of the given drive and
stores it in the given variable.
SYNTAX: GETVOLUME [DRIVE LETTER:] [VARIABLE NAME]
SAMPLE CALL: GETVOLUME A: VOLUME
COMMENTS:
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
GLOBALENV
PURPOSE: Change, Add or Delete a environment variable in the master or
parent environment.
SYNTAX: GLOBALENV [VARIABLE NAME] <VALUE>
SAMPLE CALL: (1) GLOBALENV PATH C:\DOS
(2) GLOBALENV PATH
COMMENTS: Sample call 1 will change the PATH to C:\DOS.
Sample call 2 will delete the PATH.
Changes made by GLOBALENV will not take effect until
execution of SSL is complete.
ASSOCIATED COMMANDS: LOCALENV
GOTO
PURPOSE: Jumps from the current position in the script to a location
marked by the same LABEL as given with the GOTO statement.
SYNTAX: GOTO [LABEL]
SAMPLE CALL: GOTO END
EQU COUNTRY USA
LABEL END
COMMENTS: In the previous sample call the EQU command will be skipped
because the GOTO command causes control to jump to the line
marked with the LABEL END statement.
ASSOCIATED COMMANDS: LABEL
IF
PURPOSE: The IF command will test a certain condition and execute the
instructions following the IF command up to the associated
ELSE and/or END command if the condition tested is true. If
an ELSE command exists and the IF condition is false, all
instructions following the ELSE command will be executed up to the
associated END command. The ELSE command is not necessary
if you do not want anything to execute when the IF condition
is false.
SYNTAX: IF [CONDITION] <LOGICAL OPERATOR> <CONDITION> ...
instructions
.
.
.
ELSE
instructions
.
.
.
END
COMMENTS: Inputs may be literal values, variables or a combination of
the two. Nested IF statements are permitted.
AVAILABLE CONDITIONS:
CONDITION: =
PURPOSE: Checks for the equality of two inputs.
SYNTAX: IF = [INPUT1] [INPUT2]
SAMPLE CALL: EQU NAME Tony
IF = "Tony" @NAME@
COMMENTS: The previous sample call will return a true value.
IF (continued)
AVAILABLE CONDITIONS:
CONDITION: >
PURPOSE: Check to see if one input is greater than the other.
SYNTAX: IF > [INPUT1] [INPUT2]
SAMPLE CALL: EQU COUNT 5
IF > 10 @COUNT@
COMMENTS: The previous sample call will return a true value.
CONDITION: <
PURPOSE: Check to see if one input is less than the other.
SYNTAX: IF < [INPUT1] [INPUT2]
SAMPLE CALL: EQU COUNT 5
IF < 10 @COUNT@
COMMENTS: The previous sample call will return a false value.
CONDITION: >=
PURPOSE: Check to see if one input is greater than or equal to
the other.
SYNTAX: IF >= [INPUT1] [INPUT2]
SAMPLE CALL: EQU COUNT 5
IF >= 10 @COUNT@
COMMENTS: The previous sample call will return a true value.
IF (continued)
AVAILABLE CONDITIONS:
CONDITION: <=
PURPOSE: Check to see if one input is less than or equal to the
other.
SYNTAX: IF <= [INPUT1] [INPUT2]
SAMPLE CALL: EQU COUNT 10
IF <= 10 @COUNT@
COMMENTS: The previous sample call will return a true value.
CONDITION: <>
PURPOSE: Check to see if one input does not equal to the other.
SYNTAX: IF <> [INPUT1] [INPUT2]
SAMPLE CALL: EQU COUNT 10
IF <> 10 @COUNT@
COMMENTS: The previous sample call will return a false value.
CONDITION: DEFINED or !DEFINED
PURPOSE: Determines whether the given variable name has been
defined. ! negates the outcome.
SYNTAX: IF DEFINED [VARIABLE NAME]
IF !DEFINED [VARIABLE NAME]
SAMPLE CALL: IF DEFINED VERSION
COMMENTS: The previous sample call will return a true value if a
variable named VERSION had been given any value prior
to this call, otherwise it will return a false value.
CONDITION: EXIST or !EXIST
PURPOSE: Checks for the existence of a file. ! negates the
outcome.
SYNTAX: IF EXIST [<DRIVE\PATH\>FILENAME]
IF !EXIST [<DRIVE\PATH\>FILENAME]
SAMPLE CALL: IF EXIST C:\WIN.COM
COMMENTS: In the previous sample win.com will be searched for on the
root of C:. NUL can replace the filename if checking
for the existence of a directory. No wild cards can be
used.
IF (continued)
AVAILABLE CONDITIONS:
CONDITION: EXIST* or !EXIST*
PURPOSE: Checks for the existence of a file in the path given
and all sub directories. ! negates the outcome.
SYNTAX: IF EXIST* [<DRIVE\PATH\>FILENAME]
IF !EXIST* [<DRIVE\PATH\>FILENAME]
SAMPLE CALL: IF EXIST* C:\WIN.COM
COMMENTS: In the previous sample the file win.com will be searched for
on the root of C: and all sub directories. NUL can
replace the filename if checking for the existence of a
directory. No wild cards can be used.
CONDITION: TEXTEXIST or !TEXTEXIST
PURPOSE: Search for text inside a given text file. ! negates
the outcome.
SYNTAX: IF TEXTEXIST [<DRIVE\PATH\>FILENAME] [SEARCH STRING]
IF !TEXTEXIST [<DRIVE\PATH\>FILENAME] [SEARCH STRING]
SAMPLE CALL: IF TEXTEXIST C:\AUTOEXEC.BAT "PATH C:\;C:\DOS"
COMMENTS:
CONDITION: ISNUM or !ISNUM
PURPOSE: Determines whether a string contains all numeric
digits. ! negates the outcome.
SYNTAX: IF ISNUM [VALUE]
IF !ISNUM [VALUE]
SAMPLE CALL: (1) IF ISNUM "1456"
(2) EQU TEMP 345F
IF ISNUM @TEMP@
COMMENTS: Sample call #1 will return a true value.
Sample call #2 will return a false value.
IF (continued)
AVAILABLE LOGICAL OPERATORS:
OPERATOR: AND
PURPOSE: Separates multiple CONDITIONS which must return true
values for the whole expression to be true.
SYNTAX: IF = [CONDITION1] AND [CONDITION2] AND [CONDITION3] .....
SAMPLE CALL: IF = "Tony" @NAME@ AND exist c:\autoexec.bat
COMMENTS: You can combine different LOGICAL OPERATORS on the same
line, but there is no way to set precedence.
OPERATOR: OR
PURPOSE: Separates multiple CONDITIONS one of which must return
a true values for the whole expression to be true.
SYNTAX: IF = [CONDITION1] OR [CONDITION2] OR [CONDITION3] ...
SAMPLE CALL: IF = "Tony" @NAME@ OR exist c:\autoexec.bat
COMMENTS: You can combine different LOGICAL OPERATORS on the same
line, but there is no way to set precedence.
INLINE
PURPOSE: Takes the given string and determines if the given substring
is contained within that string, and if so returns the
position of the first character of the substring in the given
string. If the substring is not found in the string then the
function returns 0.
SYNTAX: INLINE [STRING] [SUBSTRING] [VARIABLE NAME]
SAMPLE CALL: INLINE "HELLO WORLD" "WORLD" LOCATION
COMMENTS: In the previous sample call the value of LOCATION will be 7.
ASSOCIATED COMMANDS: CONCAT, CROP, EXTRACTI, LCROP, LENGTH, LTRIM,
RCROP, RTRIM
INPUT
PURPOSE: Prompts user for input and stores it in the given variable.
SYNTAX: INPUT [VARIABLE NAME]
SAMPLE CALL: INPUT CHOICE
COMMENTS: In the previous sample the user will be prompted for input and
when entered it will be stored in the variable CHOICE.
ASSOCIATED COMMANDS: INPUTWINDOW, MENU
INPUTWINDOW
PURPOSE: Create a window with various fields for the user to fill in.
The fields are defined on the command line and can specify
what type of character to accept and specify the format.
SYNTAX: INPUTWINDOW [WINDOW TITLE] [HEADING] [PICTURE] [VARIABLE]
<HEADING2> <PICTURE2> <VARIABLE2> .........
PARAMETERS: WINDOW TITLE - Title of window displayed on screen.
If you do not want a title then
enter "" for that parameter.
HEADING - Describes to user what information
you are asking for.
PICTURE - Describes the format of the desired
information.
- OPTIONS:
X - Any character.
9 - Only numbers accepted.
L - Only 'Y' or 'N' accepted.
(Default is 'N')
VARIABLE - Variable name to store input in.
SAMPLE CALL: INPUTWINDOW "MAILING LABELS" "NAME : " "XXXXXXXXXXXXXXX"
NAME "ADDRESS: " "XXXXXXXXXXXXXXX" ADDRESS1 " :"
"XXXXXXXXXXXXXXX" ADDRESS2 "PHONE : " "(999)999-9999"
PHONE
COMMENTS: The window produced from the previous sample call will
look similar to the following along with a border:
MAILING LABELS
NAME :
ADDRESS :
:
PHONE : ( ) -
Any character added as part of the picture other than 'X',
'9' or 'L' will be a permanent part of the users input and
users will not be allowed to change it. The parenthesis and
hyphen in the phone field above are such.
You can have a maximum of 20 lines with a maximum of 75
characters in each line.
User may use any of the typical navigation key to get around
the window. When the user is satisfied with the entries
he must press return with the cursor sitting on the last line
in the window to terminate input. All values will then be
stored in the variables specified on the command line.
ASSOCIATED COMMANDS: INPUT, MENU, MENUITEMBACK, MENUITEMFORE,
OUTPUTWINDOW, WINBACK, WINFORE
INSERTTEXT
PURPOSE: Insert text into a text file. Text may be
inserted anywhere in the text file depending on
which switch is chosen.
SYNTAX: INSERTTEXT [<DRIVE\PATH\>FILENAME] ["NEW TEXT"] [*SWITCH]
<"SUB_STRING1"> <"SUB_STRING2">
SWITCHES: *P - Insert NEW TEXT on the line before the first
occurrence of a line containing SUB_STRING1 but
NOT if the line contains SUB_STRING2.
*A - Insert NEW TEXT on the line after the first
occurrence of a line containing SUB_STRING1 but NOT
if the line contains SUB_STRING2.
*R - Replaces the first occurrence of a line containing
SUB_STRING1 with NEW TEXT only if the line does not
contain SUB_STRING2.
*PE - Insert NEW TEXT on the line before every occurrence
of a line containing SUB_STRING1 but NOT if the
line contains SUB_STRING2.
*AE - Insert NEW TEXT on the line after every occurrence
of a line containing SUB_STRING1 but NOT if the line
contains SUB_STRING2.
*RE - Replaces every occurrence of a line containing
SUB_STRING1 with NEW TEXT only if the line does not
contain SUB_STRING2.
*T - Insert NEW TEXT on the first line of the file.
*B - Insert NEW TEXT on the last line of the file.
SAMPLE CALL: INSERTTEXT C:\AUTOEXEC.BAT "SET TEMP=C:\DOS" *P "PATH"
COMMENTS: In the previous sample call "SET TEMP=C:\DOS" will be inserted
in "C:\AUTOEXEC.BAT" before the first occurrence of "PATH" is
found in the file. If you want to insert a blank line use ""
in place of the NEW TEXT parameter. If you want to delete a
given line, use the *R switch with "" in place of NEW TEXT.
Remember that SUB_STRING2 is not required but can be used to exclude
lines you do not want evaluated.
SUB_STRING1 is required if you use the *P, *A or *R switches.
ASSOCIATED COMMANDS: ADDGROUP, DELGROUP, NUMLINES, PULLTEXT, READLINE,
REMOVESECTION, REMOVETEXT
INVENTORY
PURPOSE: Searches for all occurrences of the specified file(s) and
stores their PATH in the specified text file. A heading can
be specified that helps describe the purpose of the inventory
or any other use you can think of.
SYNTAX: INVENTORY [<DRIVE\PATH\>FILENAME1] [<DRIVE\PATH\>FILENAME2]
["HEADING"] [*SWITCH]
FILENAME1 - File(s) being searched for.
FILENAME2 - File to store the PATHs of files that are
found.
HEADING - String of text that is inserted in FILENAME2
before the PATHs of any found files.
SWITCHES: *S - Searches all sub directories.
SAMPLE CALL: INVENTORY C:\*.DOC "List of all documents" *S
COMMENTS: If you do not want a HEADING use "" in place of this
parameter. The output file FILENAME2 is never overwritten,
but has all text appended to it.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
GETVOLUME, MOVE, PUTVOLUME, REN, RENDIR
LABEL
PURPOSE: Mark a location in the script where an associated GOTO
command will transfer control.
SYNTAX: LABEL [NAME]
SAMPLE CALL: GOTO END
EQU COUNTRY USA
LABEL END
COMMENTS: In the previous sample the EQU command will not execute
because the GOTO command causes control to skip to the line
marked by the appropriate LABEL.
ASSOCIATED COMMANDS: GOTO
LCROP
PURPOSE: Extracts n# of characters from the left side of the given
string and stores them in the given variable.
SYNTAX: LCROP ["SOURCE"] [NUMBER OF CHARACTERS] [VARIABLE NAME]
SAMPLE CALL: EQU STRING "PATH = C:\DOS"
LCROP @STRING@ 4 STRING2
COMMENTS: In the previous sample call the 4 leftmost characters of
"PATH = C:\DOS" will be placed in the variable STRING2. The
value stored in STRING2 in this sample call will be "PATH".
ASSOCIATED COMMANDS: CONCAT, CROP, EXTRACTI, INLINE, LENGTH, LTRIM,
RCROP, RTRIM
LENGTH
PURPOSE: Determines the length of the given string and stores that
value in the given variable.
SYNTAX: LENGTH ["SOURCE"] [VARIABLE NAME]
SAMPLE CALL: EQU STRING "PATH"
LENGTH @STRING@ STRING2
COMMENTS: In the previous sample call the length of the value of STRING
will be stored in the variable STRING2. The value stored
in STRING2 in this sample call will be 4.
ASSOCIATED COMMANDS: CONCAT, CROP, EXTRACTI, INLINE, LCROP, LTRIM,
RCROP, RTRIM
LISTVARS
PURPOSE: Displays all the currently defined SSL variables.
SYNTAX: LISTVARS
SAMPLE CALL: LISTVARS
COMMENTS:
ASSOCIATED COMMANDS: RELEASE, RELEASEALL
LOCALENV
PURPOSE: Change, Add or Delete a environment variable in the current or
local environment.
SYNTAX: LOCALENV [VARIABLE NAME] <VALUE>
SAMPLE CALL: (1) LOCALENV PATH C:\DOS
(2) LOCALENV PATH
COMMENTS: Sample call 1 with change the PATH to C:\DOS.
Sample call 2 will delete the current PATH.
Once execution of SSL terminates the environment reverts
back to the state it was in before SSL ran.
ASSOCIATED COMMANDS: GLOBALENV
LOOP
PURPOSE: Terminates a WHILE command.
SYNTAX: LOOP
SAMPLE CALL: WHILE
.
.
LOOP
COMMENTS: While a condition in a WHILE statement is true, all the
instructions following the WHILE command will be executed
up to the associated LOOP command. Control is then
transferred back to the original WHILE statement and the
condition is tested again. This process will continue until
the conditional statement found in the WHILE statement is
false.
ASSOCIATED COMMANDS:
LTRIM
PURPOSE: Remove leading spaces from a string or remove a specified
number of character from the left side of the given string
and store the remainder in the given variable.
SYNTAX: LTRIM ["SOURCE"] [VARIABLE NAME] <NUMBER OF CHARACTERS>
SAMPLE CALL: (1) LTRIM " Hello World" STRING2
(2) LTRIM "Hello World" STRING2 6
COMMENTS: Sample call #1 will remove the leading spaces and store
"Hello World" in the variable STRING2.
Sample call #2 will remove the first 6 characters from
"Hello World" and store "World" in the variable STRING2.
If you specify the number of characters to remove and the
string has leading spaces, the spaces are not
automatically removed but considered as actual characters
which count against the number of characters you specified
to remove.
ASSOCIATED COMMANDS: CONCAT, CROP, EXTRACTI, INLINE, LCROP, LENGTH,
RCROP, RTRIM
MASTERBACK
PURPOSE: Changes the background color used for the application.
SYNTAX: MASTERBACK [COLORCOLOR]
AVAILABLE COLORS: BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
SAMPLE CALL: MASTERBACK BLUE
COMMENTS:
ASSOCIATED COMMANDS: MASTERFORE, MENUITEMBACK, MENUITEMFORE,
REFRESH, WINBACK, WINFORE
MASTERFORE
PURPOSE: Changes the foreground color used for the application.
SYNTAX: MASTERFORE [COLORCOLOR]
AVAILABLE COLORS: BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WHITE
SAMPLE CALL: MASTERFORE BLUE
COMMENTS:
ASSOCIATED COMMANDS: MASTERBACK, MENUITEMBACK, MENUITEMFORE,
REFRESH, WINBACK, WINFORE
MD
PURPOSE: Create a directory.
SYNTAX: MD [<DRIVE\PATH\>DIRECTORY]
SAMPLE CALL: MD C:\TEST
COMMENTS:
ASSOCIATED COMMANDS: CD, RD
MENU
PURPOSE: Display a menu and have the user make a selection. The
number of the menu option selected is then stored in the
variable given on the command line.
SYNTAX: MENU [VARIABLE NAME] [MENU TITLE] [MENU ITEM1]
<"MENU ITEM2"> ....
SAMPLE CALL: EQU ITEM3 "INSTALL APPLICATION"
MENU CHOICE "MAIN MENU" "INSTALL DOS" "DELETE FILE" @ITEM3@
COMMENTS: Variables can be used as MENU ITEMs. This is the best way to
set up the menu items because of the limited space you have on
the command line. The maximum number of menu items is 20 with
a maximum of 75 characters in menu title. If you do not wish
to have a MENU TITLE then substitute "" for that parameter.
In the previous sample call you will have the following menu
options displayed on the screen with a MENU TITLE and border:
MAIN MENU
INSTALL DOS
DELETE FILE
INSTALL APPLICATION
The user can then use the cursor keys to select the option
they desire. The number of that option will be stored in the
given variable name, in this case CHOICE. If you choose
INSTALL APPLICATION then the value of CHOICE will be 3.
ASSOCIATED COMMANDS: INPUT, INPUTWINDOW, MENUITEMBACK, MENUITEMFORE,
OUTPUTWINDOW, WINBACK, WINFORE
MENUITEMBACK
PURPOSE: Changes the background color of a highlighted window item.
SYNTAX: MENUITEMBACK [COLORCOLOR]
AVAILABLE COLORS: BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
SAMPLE CALL: MENUITEMBACK BLUE
COMMENTS:
ASSOCIATED COMMANDS: MASTERBACK, MASTERFORE, MENUITEMFORE, REFRESH,
WINBACK, WINFORE
MENUITEMFORE
PURPOSE: Changes the foreground color of a highlighted window item.
SYNTAX: MENUITEMFORE [COLORCOLOR]
AVAILABLE COLORS: BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WHITE
SAMPLE CALL: MENUITEMFORE BLUE
COMMENTS:
ASSOCIATED COMMANDS: MASTERBACK, MASTERFORE, MENUITEMBACK,
REFRESH, WINBACK, WINFORE
MOD
PURPOSE: Divides two numbers and stores the remainder in the given
variable.
SYNTAX: MOD [NUMBER1] [NUMBER2] [VARIABLE NAME]
SAMPLE CALL: EQU COUNT 10
MOD 52 @COUNT@ ANSWER
COMMENTS: Numbers and or variables can be used. In the previous sample
call the value of ANSWER will be 2.
ASSOCIATED COMMANDS: ADD, DIV, MULT, SUB
MOVE
PURPOSE: Moves files from their given location to a new location.
SYNTAX: MOVE [SOURCE] [DESTINATION] <*SWITCH>
SWITCHES: *S - Moves files found in all sub directories.
SAMPLE CALL: (1) MOVE C:\DATA\FILE.EXE C:\BACKUP\FILE.EXE
(2) MOVE C:\*.BAT C:\BACKUP\*.* *S
COMMENTS: Dos wild card conventions can be used. Files can not be moved
between physical drives or logical partitions.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
GETVOLUME, INVENTORY, PUTVOLUME, REN, RENDIR
MSGLEVEL
PURPOSE: Specifies what type of progress tracking you desire and/or a
file to log the progress to.
SYNTAX: MSGLEVEL [OPTION] <LOG FILENAME>
OPTIONS: 0 - Prints progress to the PROGRESS window and
saves progress in the LOG file.
1 - Prints progress to the PROGRESS window but
does not save progress in the LOG file.
2- Does not print progress to the PROGRESS
window but does save progress in the LOG
file.
3 - Does not print progress to the PROGRESS
window nor does it save progress in the LOG
file.
SAMPLE CALL: (1) MSGLEVEL 3
(2) MSGLEVEL 0 C:\SSL.LOG
COMMENTS: Sample call #1 will cause SSL to stop printing progress to the
PROGRESS window and to the LOG file, if one has been
opened previously.
Sample call #2 will cause SSL to print progress to the
PROGRESS window and open a file called SSL.LOG in the
root of the C: drive and log all progress to that file.
By default MSGLEVEL is set to 1 and no log file is opened.
You must specify a LOG FILENAME when setting the MSGLEVEL to
0 and 2 for the first time. After initializing a LOG
file you no longer need to specify a LOG FILENAME
when using these MSGLEVEL's.
A LOG FILENAME should not be specified when setting MSGLEVEL
to 1 or 3.
If you are running SSL by specifying commands on the command
line, this command has no effect.
ASSOCIATED COMMANDS: ERRORLEVEL, PAUSE
MULT
PURPOSE: Multiply two numbers together and store the value in the
given variable.
SYNTAX: MULT [NUMBER1] [NUMBER2] [VARIABLE NAME]
SAMPLE CALL: EQU COUNT 10
MULT 50 @COUNT@ ANSWER
COMMENTS: Numbers and or variables can be used. In the previous sample
call the value of ANSWER will be 500.
ASSOCIATED COMMANDS: ADD, DIV, MOD, SUB
NUMLINES
PURPOSE: Determines the number of lines in a text file and stores
that value in the given variable.
SYNTAX: NUMLINES [<DRIVE\PATH\>FILENAME] [VARIABLE NAME]
SAMPLE CALL: NUMLINES C:\AUTOEXEC.BAT VALUE
COMMENTS: In the previous sample call the number of lines in the
AUTOEXEC.BAT file will be calculated and stored in the
variable VALUE.
ASSOCIATED COMMANDS: ADDGROUP, DELGROUP, INSERTTEXT, PULLTEXT, READLINE,
REMOVESECTION, REMOVETEXT
OUTPUTWINDOW
PURPOSE: Create a window and print information to it.
SYNTAX: OUTPUTWINDOW [WINDOW TITLE] [STRING1] <STRING2> .....
SAMPLE CALL: EQU ADDRESS "610 Jackson Street"
EQU CITY Greenville
EQU STATE NC
EQU ZIP 87654
OUTPUTWINDOW " CUSTOMER INFO " "Mike Johnson" @ADDRESS@
"@CITY@, @STATE@ @ZIP@"
COMMENTS: The window produced from the previous sample call will look
similar to the following along with a border:
CUSTOMER INFO
Mike Johnson
610 Jackson Street
Greenville, NC 87654
Remember that the variables CITY, STATE and ZIP are between
double quotes and will be treated as one parameter so they
will be put on the same line.
You can have a maximum of 20 lines with a maximum of 75
characters in each line.
If you do not desire a menu title then use "" in place of
that parameter. If you would like a blank line displayed use
"" as the parameter.
ASSOCIATED COMMANDS: INPUT, INPUTWINDOW, MENU, WINBACK, WINFORE
PAUSE
PURPOSE: When issued, it will cause SSL to prompt the user to press
any key when it finishes processing the entire script.
SYNTAX: PAUSE
SAMPLE CALL: PAUSE
COMMENTS: This is useful in debugging if SSL is terminating so quickly
that you can not see what kind of errors are being displayed.
Also remember that you can set up log files using the
ERRORLEVEL and MSGLEVEL commands that will aid you in
debugging. This command is most effective if you make it the
first entry in your script.
ASSOCIATED COMMANDS: ERRORLEVEL, MSGLEVEL, WAIT
PULLTEXT
PURPOSE: Extract text from a text file by specifying a sub string of
the line you want to extract. Extracted text is placed
in the variable name given on the command line.
SYNTAX: PULLTEXT [<DRIVE\PATH\>FILENAME] ["SUB STRING"] [VARIABLE NAME]
<*SWITCH> <SUB STRING> <*SWITCH> <SUB STRING> .....
SWITCHES: *P - The line that is to be extracted must be found
before the SUB STRING given after this switch
is found in the file. This switch can only be used
once.
*A - The line that is to be extracted must be found
after the SUB STRING given after this switch
is found in the file. This switch can only be use
once.
*N - The line that is to be extracted can not contain
the SUB STRING given after this switch. You
can use this switch up to 10 times.
SAMPLE CALL: (1) PULLTEXT C:\AUTOEXEC.BAT PROMPT STORE
(2) PULLTEXT C:\AUTOEXEC.BAT "PATH" STRING *A "PROMPT"
*P "DOSKEY" *N "SET PATH"
COMMENTS: Sample call #1 will extract the first line that has the string
PROMPT contained in it and store the entire line of text
in the variable STORE.
Sample call #2 will extract the first line that meets the
following conditions and store the entire line of text in the
variable STRING:
1. The line must contain PATH
2. The line must not contain SET PATH
3. A line that contains DOSKEY must not have been found yet
4. A line that contains PROMPT must have already been found.
ASSOCIATED COMMANDS: ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, READLINE,
REMOVESECTION, REMOVETEXT
PUSHKEY
PURPOSE: Places keys in the keyboard buffer. This can be done one of
two ways, the first way is to give the string of characters
you want pushed, the second is to give the SCAN code and
ASCII code of the keys you want pushed.
SYNTAX: PUSHKEY [SWITCH] [PARAMETER1] <PARAMETER2>
SWITCHES: *A - Specifies that PARAMETER1 will be a string of
characters you wish to have placed in the
keyboard buffer which will have a RETURN appended
at the end of it.
*S - Specifies that a list of ASCII codes and SCAN
codes of the characters you want PUSHED will be
given. In this case, PARAMETER1 will be the
ASCII code of the first character and PARAMETER2
will be the SCAN code of the first character you
want PUSHED. Both ASCII CODE and SCAN CODE must
be given unless it is not in the extended character
set, then you would just pass 0 as the SCAN CODE.
SAMPLE CALL: (1) PUSHKEY *S 69 0 68 0 73 0 84 0 32 0 67 0 58 0 92 0 71 0
79 0 46 0 66 0 65 0 84 0 13 0
(2) PUSHKEY *A "EDIT C:\GO.BAT"
(3) PUSHKEY *S 0 61
COMMENTS: Sample calls #1 and #2 both will push "EDIT C:\GO.BAT" into
the keyboard buffer along with a RETURN. Maximum of 15
characters.
Sample call #3 will push the F3 key into the keyboard buffer.
ASSOCIATED COMMANDS:
PUTVOLUME
PURPOSE: Writes the given volume label to the given disk drive.
SYNTAX: PUTVOLUME [DRIVE LETTER:] [VOLUME LABEL]
SAMPLE CALL: (1) PUTVOLUME A: DISK1
(2) PUTVOLUME A:
COMMENTS: Sample call #1 will change the Volume Label on the disk in
drive A: to DISK1.
Sample call #2 will delete the Volume Label on the disk in
drive A:.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
GETVOLUME, INVENTORY, MOVE, REN, RENDIR
RCROP
PURPOSE: Extracts n# of characters from the right side of the given
string and stores them in the given variable.
SYNTAX: RCROP ["SOURCE"] [NUMBER OF CHARACTERS] [VARIABLE NAME]
SAMPLE CALL: EQU STRING "PATH = C:\DOS"
RCROP @STRING@ 4 STRING2
COMMENTS: In the previous sample call the 4 rightmost characters of
"PATH = C:\DOS" will be placed in the variable STRING2. The
value stored in STRING2 in this sample call will be "\DOS".
ASSOCIATED COMMANDS: CONCAT, CROP, EXTRACTI, INLINE, LCROP, LENGTH,
LTRIM, RTRIM
RD
PURPOSE: Delete a directory.
SYNTAX: RD [<DRIVE\PATH\>DIRECTORY]
SAMPLE CALL: RD C:\TEST
COMMENTS: The directory which is to be deleted can only be deleted if
there are no files or sub directories in it.
ASSOCIATED COMMANDS: CD, MD
READLINE
PURPOSE: Reads the specified line number from the given file and
stores it in the given variable..
SYNTAX: READLINE [<DRIVE\PATH\>FILENAME] [LINE NUMBER] [VARIABLE NAME]
SAMPLE CALL: READLINE C:\AUTOEXEC.BAT 5 LINE
COMMENTS: The previous sample call will read the 5th line in the
AUTOEXEC.BAT file and store the value in the variable LINE.
ASSOCIATED COMMANDS: ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT,
REMOVESECTION, REMOVETEXT
REBOOT
PURPOSE: Performs a WARM or COLD boot depending on user's request.
SYNTAX: REBOOT <OPTION>
OPTIONS: 1. COLD
2. WARM
SAMPLE CALL: (1) REBOOT
(2) REBOOT COLD
(3) REBOOT WARM
COMMENTS: If no OPTION is given the default is COLD.
Sample call #1 and #2 will do a COLD boot which is like
powering the system up or pressing the reset button.
Sample call #3 will do a WARM boot which is like pressing
Ctrl Alt Delete.
ASSOCIATED COMMANDS: EXIT
REFRESH
PURPOSE: Refreshes the entire screen using the current MASTERBACK,
MASTERFORE, WINBACK and WINFORE colors currently defined.
SYNTAX: REFRESH
SAMPLE CALL: REFRESH
COMMENTS: This command also erases all the text in the PROGRESS and
ERRORS windows.
REFRESH uses the WINBACK and WINFORE colors to refresh the
PROGRESS and ERRORS windows. It uses the MASTERBACK and
MASTERFORE colors to refresh everything else.
If all you want to do is change the colors of any new
windows you open but not anything else, do not issue this
command. REFRESH is not needed to change the colors of
anything accept those things already displayed on the screen
by default. Typically it will only be used to change the colors of the
PROGRESS window and the ERRORS window.
ASSOCIATED COMMANDS: MASTERBACK, MASTERFORE, MENUITEMBACK,
MENUITEMFORE, WINBACK, WINFORE
RELEASE
PURPOSE: Erases the given variable.
SYNTAX: RELEASE [VARIABLE NAME]
SAMPLE CALL: RELEASE STRING1
COMMENTS: It is always good to RELEASE a variable when you are finished
using it so that you don't reach the limit.
ASSOCIATED COMMANDS: LISTVARS, RELEASEALL
RELEASEALL
PURPOSE: Erases all currently defined variables.
SYNTAX: RELEASEALL
SAMPLE CALL: RELEASEALL
COMMENTS:
ASSOCIATED COMMANDS: LISTVARS, RELEASE
REMOVESECTION
PURPOSE: Removes an entire section from a text file that uses file
formatting conventions like those found in WINDOWS INI files
and multiple boot configurations in the CONFIG.SYS file.
SYNTAX: REMOVESECTION [<DRIVE\PATH\>FILENAME] ["[SECTION NAME]"]
SAMPLE CALL: REMOVESECTION C:\WINDOWS\WIN.INI "[DESKTOP]"
COMMENTS: The previous sample call will delete the first line with a
heading of [DESKTOP] and all lines after it up to the next
section heading or to the end of the file, which ever comes
first.
ASSOCIATED COMMANDS: ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT,
READLINE, REMOVETEXT
REMOVETEXT
PURPOSE: Removes text from a text file by specifying a sub string of
the line you want to remove.
SYNTAX: REMOVETEXT [<DRIVE\PATH\>FILENAME] ["SUB STRING"] <*SWITCH>
<SUB STRING1> <*SWITCH> <SUBSTRING2> .............
SWITCHES: *P - The line that is to be deleted must be found before
the SUB STRING given with this switch is found in
the file. This switch can only be used once.
*A - The line that is to be deleted must be found after
the SUB STRING given with this switch is found in
the file. This switch can only be use once.
*E - When this switch is given, every line that meets
the criteria for deletion will be deleted.
*N - The line that is to be deleted can not contain the
SUB STRING given after this switch. You can use
this switch up to 10 times.
SAMPLE CALL: (1) REMOVETEXT C:\AUTOEXEC.BAT PROMPT
(2) REMOVETEXT C:\AUTOEXEC.BAT "PATH" *A "PROMPT" *P "DOSKEY"
*N "SET PATH"
COMMENTS: Sample call #1 will delete the first line that has
the string PROMPT contained in it.
Sample call #2 will delete the first line that meets the
following conditions:
1. The line must contain PATH.
2. The line must not contain SET PATH.
3. A line that contains DOSKEY must not have been found yet.
4. A line that contains PROMPT must have already been found.
ASSOCIATED COMMANDS: ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT,
READLINE, REMOVESECTION
REN
PURPOSE: Renames the given file(s) to the new name specified.
SYNTAX: REN [<DRIVE\PATH\>CURRENT FILENAME] [NEW FILENAME] <SWITCH>
SWITCHES: *S - Renames files found in all sub directories.
SAMPLE CALL: (1) REN C:\DATA\FILE.EXE NEWFILE.EXE
(2) REN C:\*.BAT *.BAK *S
COMMENTS: NEW FILENAME must be given with NO PATH. Dos wild card
conventions can be used.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
GETVOLUME, INVENTORY, MOVE, PUTVOLUME, RENDIR
RENDIR
PURPOSE: Renames the given directory to the new name specified.
SYNTAX: REN [<DRIVE\PATH\>CURRENT DIRECTORY NAME] [NEW DIRECTORY NAME]
SAMPLE CALL: REN C:\DATA MYDATA
COMMENTS: NEW DIRECTORY must be given with NO PATH.
ASSOCIATED COMMANDS: ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
GETVOLUME, INVENTORY, MOVE, PUTVOLUME, REN
RTRIM
PURPOSE: Remove trailing spaces from a string or remove a specified
number of character from the right side of the given string
and store the remainder in the given variable.
SYNTAX: RTRIM ["SOURCE"] [VARIABLE NAME] <NUMBER OF CHARACTERS>
SAMPLE CALL: (1) RTRIM "Hello World " STRING2
(2) RTRIM "Hello World" STRING2 6
COMMENTS: Sample call #1 will remove the trailing spaces and store
"Hello World" in the variable STRING2.
Sample call #2 will remove the last 6 characters from
"Hello World" and store "Hello" in the variable STRING2.
If you specify the number of characters to remove and the
string has trailing spaces, the spaces are not
automatically removed but considered as actual characters
which count against the number of characters you specified
to remove.
ASSOCIATED COMMANDS: CONCAT, CROP, EXTRACTI, INLINE, LCROP, LENGTH,
LTRIM, RCROP
SSL
PURPOSE: Executes the given script file.
SYNTAX: SSL [<DRIVE\PATH\>FILENAME]
SAMPLE CALL: SSL C:\SCRIPTS\INSTALL.SSL
COMMENTS: All currently defined variables are passed to the script being
executed.
ASSOCIATED COMMANDS:
SUB
PURPOSE: Subtracts two numbers and stores the value in the given
variable.
SYNTAX: SUB [NUMBER1] [NUMBER2] [VARIABLE NAME]
SAMPLE CALL: EQU COUNT 10
SUB 50 @COUNT@ ANSWER
COMMENTS: Numbers and or variables can be used. In the previous sample
call the value of ANSWER will be 40.
ASSOCIATED COMMANDS: ADD, DIV, MOD, MULT
WAIT
PURPOSE: Pauses execution of the script and prompts user to
"Press any key to continue!".
SYNTAX: WAIT
SAMPLE CALL: WAIT
COMMENTS:
ASSOCIATED COMMANDS: DISPLAY
WHILE
PURPOSE: The WHILE command will test a certain condition and execute
the instructions following the WHILE command up to the
associated LOOP command which will then cause control to
return back to the original WHILE command. This process will
continue until the condition given to the WHILE command
is false. The conditional statements and logical operators
are the same as used in the IF command. Please refer to the
IF command for further explanations of the conditional
statements and logical operators.
SYNTAX: WHILE [CONDITION] <LOGICAL OPERATOR> <CONDITION> ...
instructions
.
.
.
LOOP
SAMPLE CALL: EQU COUNTER1 5
EQU COUNTER2 0
WHILE > COUNTER1 COUNTER2
DISPLAY COUNTER2
ADD @COUNTER2@ 1 COUNTER2
LOOP
COMMENTS: In the previous sample call the value of COUNTER2 will
continue to be printed to the PROGRESS window until it is
equal to the value of COUNTER1. The following will be
printed to the PROGRESS window:
0
1
2
3
4
Nested WHILE LOOPs are permitted. Any variables used in a
WHILE LOOP need to be initialized before use.
ASSOCIATED COMMANDS: GOTO, IF
WINBACK
PURPOSE: Changes the background color of a window.
SYNTAX: WINBACK [COLORCOLOR]
AVAILABLE COLORS: BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
SAMPLE CALL: WINBACK BLUE
COMMENTS:
ASSOCIATED COMMANDS: MASTERBACK, MASTERFORE, MENUITEMBACK,
MENUITEMFORE, REFRESH, WINFORE
WINFORE
PURPOSE: Changes the foreground color of a window.
SYNTAX: WINFORE [COLORCOLOR]
AVAILABLE COLORS: BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WHITE
SAMPLE CALL: WINFORE BLUE
COMMENTS:
ASSOCIATED COMMANDS: MASTERBACK, MASTERFORE, MENUITEMBACK,
MENUITEMFORE, REFRESH, WINBACK